﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Linq;
using INHOADON_TAMVAN.BaoCao;


namespace INHOADON_TAMVAN.Chuc_Nang
{
    public partial class frmHoaDon : DevExpress.XtraEditors.XtraForm
    {
        DataClasses1DataContext db = new DataClasses1DataContext(SystemInfo.pub_ConnString);
        frmThemHoaDon frmThemHoaDonObj;
        public frmHoaDon()
        {
            InitializeComponent();
        }

        private void frmHoaDon_Load(object sender, EventArgs e)
        {
            this.reloadList();
        }

        private void btnAddHoaDon_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            frmThemHoaDonObj = new frmThemHoaDon();
            frmThemHoaDonObj.reloadList = new frmThemHoaDon.reloadListHD(this.reloadList);
            frmThemHoaDonObj.ShowDialog();
        }
        public void reloadList()
        {
            db = new DataClasses1DataContext(SystemInfo.pub_ConnString);
            gcHoaDon.DataSource = db.LoadHoaDon();
        }

        private void gvHoaDon_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "")
            {
                if (e.RowHandle >= 0)
                {
                    e.DisplayText = (e.RowHandle + 1).ToString();
                }
            }
        }

        private void tbnXemHoaDon_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (gvHoaDon.RowCount == 0)
            {
                XtraMessageBox.Show("Vui lòng chọn 1 một hóa đơn trên danh sách!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //vị trí chọn trên grid
                int rowHandles = gvHoaDon.FocusedRowHandle;

                if (rowHandles >= 0 )
                {
                    string id = gvHoaDon.GetFocusedRowCellValue(colHD_ID).ToString();
                    frmReportHDGTGT frmReportHDGTGTObj = new frmReportHDGTGT();
                    frmReportHDGTGTObj.hd_id = id;
                    frmReportHDGTGTObj.khogiay = 10; 
                    frmReportHDGTGTObj.ShowDialog();
                }
            }
        }
       

        private void btnDoiTuong_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (gvHoaDon.RowCount == 0)
            {
                XtraMessageBox.Show("Vui lòng chọn 1 một hóa đơn trên danh sách!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //vị trí chọn trên grid
                int rowHandles = gvHoaDon.FocusedRowHandle;

                if (rowHandles >= 0)
                {

                    string id = gvHoaDon.GetFocusedRowCellValue(colHD_ID).ToString();
                    frmThemHoaDonObj = new frmThemHoaDon();
                    frmThemHoaDonObj.reloadList = new frmThemHoaDon.reloadListHD(this.reloadList);
                    frmThemHoaDonObj.id_select = id;
                    frmThemHoaDonObj.ShowDialog();
                }
            }
        }

        private void gvHoaDon_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
           
        }

        private void gvHoaDon_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            btnDoiTuong.Enabled = true;
        }

        private void barEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (gvHoaDon.RowCount == 0)
            {
                XtraMessageBox.Show("Vui lòng chọn 1 một hóa đơn trên danh sách!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //vị trí chọn trên grid
                int rowHandles = gvHoaDon.FocusedRowHandle;

                if (rowHandles >= 0)
                {
                    DialogResult result;
                    result = XtraMessageBox.Show("Bạn có chắc muốn xóa hóa đơn này không?", "Question", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    if ( result == DialogResult.OK)
                    {
                        try
                        {
                            string id = gvHoaDon.GetFocusedRowCellValue(colHD_ID).ToString();
                            var hoadon = (from hd in db.HoaDons where hd.HD_ID == id select hd).Single();
                            db.HoaDons.DeleteOnSubmit(hoadon);
                            db.SubmitChanges();
                            this.reloadList();
                        }
                        catch (Exception)
                        {
                            
                            throw;
                        }
                        
                    }  
                }
            }
        }

        private void barClear_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.Close();
        }

        private void btInKhoNho_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (gvHoaDon.RowCount == 0)
            {
                XtraMessageBox.Show("Vui lòng chọn 1 một hóa đơn trên danh sách!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //vị trí chọn trên grid
                int rowHandles = gvHoaDon.FocusedRowHandle;

                if (rowHandles >= 0)
                {
                    string id = gvHoaDon.GetFocusedRowCellValue(colHD_ID).ToString();
                    frmReportHDGTGT frmReportHDGTGTObj = new frmReportHDGTGT();
                    frmReportHDGTGTObj.hd_id = id;
                    frmReportHDGTGTObj.khogiay = 8; 
                    frmReportHDGTGTObj.ShowDialog();
                }
            }
        }

    }
}